﻿@model KPIS.GERP.Models.ICM.ReceiveDtl

@{
    ViewBag.Title = "เพิ่มรายละเอียดการรับพัสดุเข้าคลัง [RC]";
        
    int RecId = ViewBag.RecId;
    int TypeId = ViewBag.RecType;
    int? WhId = ViewBag.WhId;
}
@Html.ValidationSummary() 
@Html.Hidden("hdId", RecId.ToString())
@Html.Hidden("hdType", TypeId.ToString())
@Html.Hidden("hdWh", WhId.ToString())

@using (Html.BeginForm("CreateDetails", "ReceiveParcel", FormMethod.Post, new { id = "form", @class = "form-horizontal", enctype = "multipart/form-data" }))
{
    @Html.AntiForgeryToken()

    <div class="block-button-menu-above">

         @Html.ActionLink("กลับไปหน้ารายละเอียดรายการรับพัสดุเข้าคลัง", "Details", new { id = ViewBag.RecId}
                            , new { @class="btn btn-gray button-standard-width btn-small icon-reply", role="button" })
        @Html.ButtonSubmit()

    </div>

    @Html.Partial("_DetailsForm") 
}

@section scripts {


    <script type="text/javascript" >

        //$(".chzn-select").chosen();
        //$(".chzn-select-deselect").chosen({ allow_single_deselect: true });

        $('.date-picker').datepicker({ language: 'th-th', format: 'dd/mm/yyyy' });

        // ใสค่า ReceiveId ใน hdRecId
        $("#hdRecId").val($("#hdId").val());

        // ใสค่า WarehouseId ใน hdWhId
        $("#hdWhId").val($("#hdWh").val());

        // แสดง Text ใน Header
        jQuery(function($) {

            var ReceiveType = $("#hdType").val();

            switch (ReceiveType) {
            case '3':
                $("#dtlsFormHeader").text("เพิ่มรายละเอียดการรับพัสดุเข้าคลัง (รับเข้าโดยผ่านกระบวนการพัสดุ)")
                break;
            case '4':
                $("#dtlsFormHeader").text("เพิ่มรายละเอียดการรับพัสดุเข้าคลัง (รับโอนจากหน่วยงานอื่น)")
                $("#dvProject").hide();
                $("#dvDateAsset").show();
                break;
            case '5':
                $("#dtlsFormHeader").text("เพิ่มรายละเอียดการรับพัสดุเข้าคลัง (รับเข้าโดยผ่านการบริจาค)")
                $("#dvProject").hide();
                $("#dvParcelType").hide();
                break;
            }

        });

        // Submit Form
        $("form").submit(function(e) {
            e.preventDefault();
            var currentForm = this;
            bootbox.confirm("ต้องการบันทึก ใช่หรือไม่?", function (result) {
                 
                if (result) {
                    var ReceiveType = $("#hdType").val();
                    var Parcel = $("#ddlParcel").val();
                    var ParcelType = $("#txtParcelType").val();
                    var Quantity = $("#txtQuantity").val();
                    var Price = $("#txtPrice").val();
                    var AssuranceExp = $("#QualityAssuranceExpDate").val();
                    var LotNo = $("#txtLotNumber").val();
                    var ParcelStartNo = $("#txtParcelStartNo").val();
                    //var Description = $("#txtDescription").val();
                    if (ParcelType = "วัสดุ") {
                        if (Parcel == "" || Quantity == "" || Price == "" || LotNo == "" ) {
                            if (Parcel == "") {
                                $("#lblParcel").show();
                            } else {
                                $("#lblParcel").hide();
                            }

                            if (Quantity == "") {
                                $("#lblQuantity").show();
                            } else {
                                $("#lblQuantity").hide();
                            }

                            if (Price == "") {
                                $("#lblPrice").show();
                            } else {
                                $("#lblPrice").hide();
                            }

                            if (LotNo == "") {
                                $("#lblLot").show();
                            } else {
                                $("#lblLot").hide();
                            }

                            //if (Description == "") {
                            //    $("#lblDescription").show();
                            //} else {
                            //    $("#lblDescription").hide();
                            //}
                        } else {
                            currentForm.submit();
                        }
                    }

                    if (ParcelType = "ครุภัณฑ์" || ParcelType == "ที่ดิน" || ParcelType == "สิ่งก่อสร้าง") {
                        if (ReceiveType == 3) {
                            if (Parcel == "" || Quantity == "" || Price == "" || ParcelStartNo == "") {
                                
                                if (Parcel == "") {
                                    $("#lblParcel").show();
                                } else {
                                    $("#lblParcel").hide();
                                }

                                if (Quantity == "") {
                                    $("#lblQuantity").show();
                                } else {
                                    $("#lblQuantity").hide();
                                }

                                if (Price == "") {
                                    $("#lblPrice").show();
                                } else {
                                    $("#lblPrice").hide();
                                }

                                if (ParcelStartNo == "") {
                                    $("#lblParcelStartNo").show();
                                } else {
                                    $("#lblParcelStartNo").hide();
                                }


                            } else {
                                currentForm.submit();
                            }
                        } else {
                            if (Parcel == "" || Quantity == "" || Price == "") {
                                if (Parcel == "") {
                                    $("#lblParcel").show();
                                } else {
                                    $("#lblParcel").hide();
                                }

                                if (Quantity == "") {
                                    $("#lblQuantity").show();
                                } else {
                                    $("#lblQuantity").hide();
                                }

                                if (Price == "") {
                                    $("#lblPrice").show();
                                } else {
                                    $("#lblPrice").hide();
                                }

                            } else {
                                currentForm.submit();
                            }
                        }
                    }
                }

            });
        });

        // IsLowerAsset
        $(function() {
            $('input:radio[name="rdoIsLowerAsset"]').click(function() {
                var value = $('input:radio[name="rdoIsLowerAsset"]:checked').val();
                if (value == "false") {
                    $('#lbl').show();
                    $('#dv').show();
                    $('#lbl1').show();
                    $('#dv1').show();
                    $('#depreciation').show();
                } else {
                    $('#lbl').hide();
                    $('#dv').hide();
                    $('#lbl1').hide();
                    $('#dv1').hide();
                    $('#depreciation').hide();
                }
            });
        });

        // ประเภทค่าเสื่อม และ อัตราค่าเสื่อม

        function FetchDpRate() {

            var value = $("#ddlDepreciationType option:selected").val();
            if (value > 0) {
                // GetDpRate
                $.getJSON('@Url.Action("GetDpRate", "ReceiveParcel")?intDpTypeId=' + value, null, function(data) {
                    $("#txtDepreciationRate").val(data.Rate);
                    $("#txtMinLifeYear").val(data.MinLife);
                    $("#txtMaxLifeYear").val(data.MaxLife);
                })
            } else {
                $("#txtDepreciationRate").val("");
                $("#txtMinLifeYear").val("");
                $("#txtMaxLifeYear").val("");
            }
        }

        // Set Prefix
        $(document).ready(function() {

            $("#txtParcelPrefix").attr("placeholder", "กรอก Prefix Code");

            $("#txtParcelPrefix").change(function() {
                var prefix = $("#txtParcelPrefix").val();
                $("#txtParcelPrefix2").val(prefix);
            });

        });

        // เลือกรายการพัสดุ

        function FetchParcel() {
            var value = $("#ddlParcel option:selected").val();
            var text = $("#ddlParcel option:selected").text();

            $("#hdDnItemId").val(value);

            // ใสค่า ชื่อครุภัณฑ์ ใน hdParcelName
            $("#hdParcelName").val(text);

            // set info parcel
            if (value != "") {
                @{
                    var rd = ViewBag.ReceiveDate as DateTime?;
                    var rdS = "";
                    if (rd != null)
                    {
                        rdS = rd.Value.ToShortDateString();
                    }
                }
                

                $.getJSON('@Url.Action("GetInfoParcel", "ReceiveParcel")' + "?intDnItem=" + value + "&ReceiveDate=@rdS", null, function(data) {

                    if (data.MsgText == "false") {
                        bootbox.alert("ข้อมูลเกิดการผิดพลาด");
                    } else {
                        $("#dvDtl").show();
                        // set ค่า textbox แต่ละอัน
                        $("#txtProject").val(data.ProjName);
                        $("#txtParcelType").val(data.ResTypeName);
                        $("#txtPrice").val(data.Price);
                        $("#txtQuantity").val(data.Quantity);
                        $("#txtParcelPrefix").val(data.ResItemCode);

                        // set ค่า id แต่ละอันใส่ไว้ใน hidden
                        $("#hdResTypeId").val(data.ResTypeId);
                        $("#ProjExpId").val(data.ProjExpId);
                        $("#hdResItemId").val(data.ResItemId);
                        $("#hdSubGrpId").val(data.ResSubGrpId);
                        $("#hdGrpId").val(data.ResGrpId);
                        $("#hdQuantity").val(data.Quantity);
                        $("#txtParcelPrefix").val(data.ResItemCode);
                        $("#txtParcelPrefix2").val(data.ResItemCode);
                        $("#txtLotNumber").val(data.LotNo);
                        $("#txtDescription").val(data.Description);
                        // set ค่า dropdown Unit
                        $("#ddlUnit").val(data.UnitId).trigger("liszt:updated");
                        $("#ddlBgSourceId").val(data.BgSourceId).trigger("liszt:updated");

                        // display layout ตามประเภทพัสดุ
                        var type = data.ResTypeId;
                        switch (type) {
                        case 1:
                            $("#dvParcelType").hide();
                            $("#dvAssetDate").hide();
                            $("#dvAssetStatus").hide();
                            $("#dvParcelNumber").hide();
                            $("#dvLotNumber").show();
                            $("#dvQA").hide();

                            break;
                        case 2:
                            $("#dvParcelType").show();
                            $("#dvAssetDate").show();
                            $("#dvAssetStatus").show();
                            $("#dvLotNumber").hide();
                            $("#dvQA").show();
                            //$("#dvExpDate").show();

                            break;
                        case 4:
                            $("#dvParcelType").show();
                            $("#dvAssetDate").hide();
                            $("#dvAssetStatus").hide();
                            $("#dvLotNumber").hide();
                            $("#dvQA").show();
                            //$("#dvExpDate").show();
                            break;
                        case 3:
                            $("#dvParcelType").hide();
                            $("#dvAssetDate").hide();
                            $("#dvAssetStatus").hide();
                            $("#dvLotNumber").hide();
                            $("#dvQA").show();
                            //$("#dvExpDate").show();
                            break;
                        }

                        // Get Asset PK
                                                                                                @* if (type == 2 || type == 3 || type == 4) {
                        $.getJSON('@Url.Action("GetLastAssetPK","ReceiveParcel")', null, function (data) {
                            var start = (parseInt(data.PK)) + 1;
                            $("#txtParcelStartNo").val(start);

                            var quantity = $("#txtQuantity").val();
                            var end = (parseInt(quantity) + parseInt(start)) - 1;
                            $("#txtParcelEndNo").val(end);
                        })
                        }*@
                    }
                });
            } else {
                $("#txtProject").val("");
                $("#txtParcelType").val("");
                $("#txtPrice").val("");
                $("#txtQuantity").val("");
                $("#txtAssetDate").val("");

            }
        }

        // Validate Quantity
        $("#txtQuantity").bind('keypress', function(e) {
            return (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) ? false : true;
        })
        // Validate Price
        $("#txtPrice").bind('keypress', function(e) {
            return (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57) && (e.which != 46 || $(this).val().indexOf('.') != -1)) ? false : true;
        })
        // Validate LifeYear
        $("#txtLifeYear").bind('keypress', function(e) {
            return (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57) && (e.which != 46 || $(this).val().indexOf('.') != -1)) ? false : true;
        })


        function ValidateQuantity() {
            var GetQuantity = $("#hdQuantity").val();
            var Set = $("#txtQuantity").val();

            if (parseInt(Set) > parseInt(GetQuantity)) {

                alert("กรอกเกินจำนวนที่สามารถเบิกได้ กรุณากรอกจำนวนใหม่");
                $("#txtQuantity").val(GetQuantity);
                return false;
            } else {
                return true;
            }
        }

        // Browse หารายการพัสดุ
        jQuery(function($) {
            $("#btnBrowseParcel").click(function() {
                $("#mdlListOfParcel").modal('show');
            })
        })

        jQuery(function($) {

            $("#btnSelectParcel").click(function() {

                var value = $("#ddlMasResItem option:selected").val();
                if (value > 0) {
                    // close pop up
                    $("#mdlListOfParcel").modal('hide');
                    $("#dvDtl").show();
                    var text = $("#ddlMasResItem option:selected").text();
                    var value = $("#ddlMasResItem option:selected").val();

                    var TypeId = $("#ddlMasResType option:selected").val();
                    var TypeName = $("#ddlMasResType option:selected").text();
                    $("#txtQuantity").val('1');
                    var Qty = parseInt($("#txtQuantity").val());

                    if (Qty == '') {
                        Qty = 1;
                    }

                    @{
                        var rd2 = ViewBag.ReceiveDate as DateTime?;
                        var rdS2 = "";
                        if (rd2 != null)
                        {
                            rdS2 = rd.Value.ToShortDateString();
                        }
                    }
                    $.getJSON('@Url.Action("GetInfoItem", "ReceiveParcel")?intResItemId=' + value + "&strReceiveDate@(@rdS2)", null, function(data) {

                        $("#hdSubGrpId").val(data.SubGrpId);
                        $("#hdGrpId").val(data.GrpId);
                        $("#txtParcelPrefix").val(data.ResItemCode);
                        $("#txtParcelPrefix2").val(data.ResItemCode);
                        $("#txtParcelStartNo").val(data.Running);
                        $("#txtLotNumber").val(data.LotNo);
                        var running = parseInt(data.Running);
                        running = running + Qty - 1;
                        var strRunning = running.toString();
                        var digit = 3 - strRunning.length;

                        $('#txtQuantity').keyup(function() {
                            var num1 = parseInt($(this).val());
                            var num2 = parseInt($("#txtParcelStartNo").val());
                            running1 = (num1 + num2) - 1;
                            var strRunning = running1.toString();
                            var digit = 3 - strRunning.length;
                            for (var i = 0; i < digit; i++) {
                                strRunning = "0" + strRunning;
                            }
                            $("#txtParcelEndNo").val(strRunning);
                        });

                        for (var i = 0; i < digit; i++) {
                            strRunning = "0" + strRunning;
                        }

                        $("#txtParcelEndNo").val(strRunning);
                    });

                    $("#txtParcel").val(text);
                    $("#txtParcelType").val(text);
                    $("#hdResItemId").val(value);
                    $("#hdParcelName").val(text);

                    $("#txtParcelType").val(TypeName);
                    $("#hdResTypeId").val(TypeId);

                    var ReceiveType = $("#hdType").val();

                    switch (TypeName) {
                    case 'วัสดุ':
                        $("#dvParcelType").hide();
                        $("#dvAssetDate").hide();
                        $("#dvAssetStatus").hide();
                        $("#dvParcelNumber").hide();
                        $("#dvLotNumber").show();
                        $("#dvQA").hide();
                        break;
                    case 'ครุภัณฑ์':
                        if (ReceiveType == 18) {
                            $("#dvParcelType").hide();
                        } else {
                            $("#dvParcelType").show();
                        }
                        $("#dvAssetDate").show();
                        $("#dvAssetStatus").show();
                        $("#dvLotNumber").hide();
                        $("#dvQA").show();
                        //$("#dvExpDate").show();

                        break;
                    case 'สิ่งก่อสร้าง':
                        if (ReceiveType == 18) {
                            $("#dvParcelType").hide();
                        } else {
                            $("#dvParcelType").show();
                        }
                        $("#dvAssetDate").hide();
                        $("#dvAssetStatus").hide();
                        $("#dvLotNumber").hide();
                        $("#dvQA").show();
                        //$("#dvExpDate").show();
                        break;
                    case 'ที่ดิน':
                        $("#dvParcelType").hide();
                        $("#dvAssetDate").hide();
                        $("#dvAssetStatus").hide();
                        $("#dvLotNumber").hide();
                        $("#dvQA").hide();
                        //$("#dvExpDate").hide();
                        break;
                    }


                } else {
                    alert("กรุณาเลือกรายการพัสดุ");
                }

            })
        })

        function CascadingDDLViewModel() {
            this.groups = ko.observableArray([]);
            this.subgroups = ko.observableArray([]);
            this.items = ko.observableArray([]);
        }

        var objVM = new CascadingDDLViewModel();
        ko.applyBindings(objVM);

        $("#ddlMasResType").change(function() {
            $("#ddlMasResGroup").val(0);
            $("#ddlMasResSubGroup").val(0);
            $("#ddlMasResItem").val(0);
        });

        $("#ddlMasResGroup").change(function() {
            $("#ddlMasResSubGroup").val(0);
            $("#ddlMasResItem").val(0);
        });

        function FetchGrop() {
            var value = $("#ddlMasResType option:selected").val();
            if (value > 0) {
                $.getJSON('@Url.Action("GetResourceGroup", "ReceiveParcel")?intResType=' + value, null, function(data) {
                    //objVM.groups(data);
                    $('#ddlMasResGroup').empty();
                    var items = '';
                    $.each(data, function(i, result) {
                        $('#ddlMasResGroup').append("<option value='" + result.Value + "'>" + result.Text + "</option>");
                    });

                    $("#ddlMasResGroup").trigger("liszt:updated"); //update list
                })
            } else {
                $("#ddlMasResGroup").val(0);
                $("#ddlMasResSubGroup").val(0);
                $("#ddlMasResItem").val(0);
            }
        }

        function FetchSubGrop() {
            var value = $("#ddlMasResGroup option:selected").val();
            if (value > 0) {
                $.getJSON('@Url.Action("GetResourceSubGroup", "ReceiveParcel")?intResGroup=' + value, null, function(data) {
                    //objVM.subgroups(data);

                    $('#ddlMasResSubGroup').empty();
                    var items = '';
                    $.each(data, function(i, result) {
                        $('#ddlMasResSubGroup').append("<option value='" + result.Value + "'>" + result.Text + "</option>");
                    });

                    $("#ddlMasResSubGroup").trigger("liszt:updated"); //update list
                })
            } else {
                $("#ddlMasResSubGroup").val(0);
                $("#ddlMasResItem").val(0);
            }
        }

        function FetchItem() {
            var value = $("#ddlMasResSubGroup option:selected").val();
            if (value > 0) {
                $.getJSON('@Url.Action("GetResourceItem", "ReceiveParcel")?intResSubGroup=' + value, null, function(data) {
                    //objVM.items(data);

                    $('#ddlMasResItem').empty();
                    var items = '';
                    $.each(data, function(i, result) {
                        $('#ddlMasResItem').append("<option value='" + result.Value + "'>" + result.Text + "</option>");
                    });

                    $("#ddlMasResItem").trigger("liszt:updated"); //update list
                })
            } else {
                $("#ddlMasResItem").val(0);
            }
        }

        function pad(str, max) {
            return str.length < max ? pad("0" + str, max) : str;
        }

    </script>
}


